// 导入 axios
import axios from "axios";
// 导入 nprogress 进度插件
import nprogress from 'nprogress';
import 'nprogress/nprogress.css';

// import getUserId from './userId';
// 右侧的加载小圆圈关掉
nprogress.configure({ showSpinner: false })

// // 引入仓库
// import store from '@/store'

// 创建axios 实例, 添加一些基本配置
const request = axios.create({
    baseURL: '/login',
    timeout: 3000
});

// 添加请求拦截器  config:配置对象
// 在发送请求之前触发 
request.interceptors.request.use((config) => {
        // 请求之前进度条开始动
        nprogress.start();

        // // 先判断是否携带token
        if(localStorage.getItem('UserToken')){
            config.headers.token = localStorage.getItem('UserToken');
        }

        // 必须返回config: ## 请求头携带一些公共参数 ##
        return config;
    }
);

// 添加响应拦截器
// 在接收数据之后
request.interceptors.response.use((res) =>{
    // 进度条消失
    nprogress.done();
    // ## 简化返回的数据 ##
    return res.data;
    },
    (err) => {
        // 一般统一处理网络错误
        const status = err.response.status;
        if(status === 404){
            alert('请求失败!')
        }else if(status === 403){
            alert('未授权!')
        } else if(status === 500 || 501 || 502){
            alert('服务器BBQ')
        }
        // 返回处于 pending 状态的 Promise实例对象
        return new Promise((resolve,reject)=>{})
    }
);

export default request;